/* $VER: AWebNews.cnfg 1.7 22 Dec 1996 */ /* Play with this script you could regret it ! ... rename and wildcard delete happen ... external comands are enabled See comments at start of news.awebrx for usage. */ /*Show calling parameters at top of page use 'on' or 'off'*/ showcomand='off' options results term='.'||'0d'x newsgroupsfile="newsgroups" ports = show('P') parse var ports dummy 'AWEB.' portnr . address value 'AWEB.' || portnr 'GET ACTIVEPORT' awebhost = result if ~show('L','rexxsupport.library') then if ~addlib('rexxsupport.library',0,-30,0) then exit(20) parse arg addr parse source prog_type result_flag called resolved ext host . last_slash = lastpos('/',called) last_colon = lastpos(':',called) dir_pos = max(last_slash,last_colon) if dir_pos > 0 then current_dir = left(called,dir_pos) else current_dir = '' address value awebhost call readinfo if ft='config' then call writeconfig if ft='del' then call deletegroups call configinfo if many=''then many='10' if bacc=''then bacc='#ffffff' if texc=''then texc='#000000' if spath='' then spath='t:' if bfile='' then bfile='t:AWebNews.batch' address command 'delete T:configawebnews.#?.html >NIL:' fname='T:configawebnews.'time(S)'.html' if open(1,fname,w) then do call writeln(1,'') call writeln(1,'News Reader Utilities') call writeln(1,'') if colo='on' then call writeln(1,'') if showcomand='on' then call writeln(1,addr '
') call writeln(1,'
') call writeln(1,'') call writeln(1,'

') call writeln(1,' - ') call writeln(1,'Read News ') call writeln(1,' - Maintain News Groups - ') call writeln(1,'Help
') call writeln(1,'') call writeln(1,'
Reader Configuration - ') call writeln(1,'Help') call writeln(1,'
Required ') call writeln(1,'
News Host') call writeln(1,'
Optional') call writeln(1,'
Get How Many ? ') call writeln(1,'( for retrieving several files at a time )') if scan = 'on' then call writeln(1,'
Display Index List ') else call writeln(1,'
Display Index List') if sho = 'on' then call writeln(1,'Short Headers ') else call writeln(1,'Short Headers ') if lho = 'on' then call writeln(1,'Long Headers ') else call writeln(1,'Long Headers ') call writeln(1,'
Filter') call writeln(1,'') if fcase = 'on' then call writeln(1,' Ignore case ') else call writeln(1,' Ignore case ') if philo = 'on' then call writeln(1,' Use Filter ') else call writeln(1,' Use Filter ') call writeln(1,'
Colors ') call writeln(1,'Background ') call writeln(1,'Text Use colors') if colo='on' then call writeln(1,' ') else call writeln(1,' ') call writeln(1,'
Save Path ') call writeln(1,'
Batch File ') call writeln(1,'

') call writeln(1,'
') call writeln(1,'Posting Configuration - ') call writeln(1,'Help') call writeln(1,'
Required') call writeln(1,'
From:') if tah='' then tah=15 if taw='' then taw=75 call writeln(1,'
Text Area ') call writeln(1,' wide high ') call writeln(1,'
Optional') call writeln(1,'
Distribution: ') if disto='on' then call writeln(1,' use ') else call writeln(1,'use ') call writeln(1,'
Reply-To:') if repo='on' then call writeln(1,'use ') else call writeln(1,'use ') call writeln(1,'
Signature file') if sigo='on' then call writeln(1,'use ') else call writeln(1,' use ') call writeln(1,'
Headers file') if heado='on' then call writeln(1,'use ') else call writeln(1,'use ') call writeln(1,'
Follow ups ') if qhead='on' then call writeln(1,' Quote Header ') else call writeln(1,'Quote header ') if qbody='on' then call writeln(1,' Quote Body ') else call writeln(1,' Quote Body ') call writeln(1,'
') call writeln(1,' ') call writeln(1,' ') call writeln(1,'') call writeln(1,'
') call writeln(1,'') call writeln(1,'
Maintain Group List') call writeln(1,'Help
') call writeln(1,'
Select News Groups to REMOVE from list') call writeln(1,'

') call writeln(1,'CAUTION can not be undone!
') call writeln(1,'Configuration') call writeln(1,' - Read News ') call writeln(1,' ') call writeln(1,'') call writeln(1, '
') call close(1) end 'OPEN file://localhost/'fname'#config' 'ALLOWCMD' 'SCREENTOFRONT' 'ACTIVATEWINDOW' exit configinfo: if open(2,current_dir||'newsconfig',r) then do configinfo = fixhtml(readch(2,3000)) parse var configinfo . 'qhead ' qhead '0a'x parse var configinfo . 'qbody ' qbody '0a'x parse var configinfo . 'colo ' colo '0a'x parse var configinfo . 'texc ' texc '0a'x parse var configinfo . 'bacc ' bacc '0a'x parse var configinfo . 'repo ' repo '0a'x parse var configinfo . 'reph ' reph '0a'x parse var configinfo . 'eadr ' eadr '0a'x parse var configinfo . 'disto ' disto '0a'x parse var configinfo . 'disth ' disth '0a'x parse var configinfo . 'sigo ' sigo '0a'x parse var configinfo . 'sigf ' sigf '0a'x parse var configinfo . 'heado ' heado '0a'x parse var configinfo . 'headf ' headf '0a'x parse var configinfo . 'bfile ' bfile '0a'x parse var configinfo . 'host ' NewsHost '0a'x parse var configinfo . 'many ' many '0a'x parse var configinfo . 'sho ' sho '0a'x parse var configinfo . 'lho ' lho '0a'x parse var configinfo . 'spath ' spath '0a'x parse var configinfo . 'tah ' tah '0a'x parse var configinfo . 'taw ' taw '0a'x parse var configinfo . 'scan ' scan '0a'x parse var configinfo . 'phil ' phil '0a'x parse var configinfo . 'philo ' philo '0a'x parse var configinfo . 'fcase ' fcase '0a'x call close(2) end return readinfo: phil=fixphil(addr); parse var addr . 'colo="' colo '"' . parse var addr . 'bacc="' bacc '"' . parse var addr . 'texc="' texc '"' . parse var addr . 'tah="' tah '"' . parse var addr . 'taw="' taw '"' . parse var addr . 'qbody="' qbody '"' . parse var addr . 'qhead="' qhead '"' . parse var addr . 'eadr="' eadr '"' . parse var addr . 'disto="' disto '"' . parse var addr . 'disth="' disth '"' . parse var addr . 'sigo="' sigo '"' . parse var addr . 'spath="' spath '"' . parse var addr . 'sigf="' sigf '"' . parse var addr . 'heado="' heado '"' . parse var addr . 'headf="' headf '"' . parse var addr . 'repo="' repo '"' . parse var addr . 'reph="' reph '"' . parse var addr . 'bfile="' bfile '"' . parse var addr . 'host="' NewsHost '"' . parse var addr . 'ft="' ft '"' . parse var addr . 'many="' many '"' . parse var addr . 'sho="' sho '"' . parse var addr . 'lho="' lho '"' . parse var addr . 'scan="' scan '"' . parse var addr . 'fcase="' fcase '"' . parse var addr . 'philo="' philo '"' . return writeconfig: if exists(current_dir||'newsconfig') then call delete(current_dir||'newsconfig') if open(2,current_dir||'newsconfig',w) then do call writeln(2,'host 'NewsHost) call writeln(2,'bfile 'bfile) call writeln(2,'many 'many) call writeln(2,'spath 'spath) call writeln(2,'sho 'sho) call writeln(2,'lho 'lho) call writeln(2,'tah 'tah) call writeln(2,'taw 'taw) call writeln(2,'scan 'scan) call writeln(2,'eadr 'eadr) call writeln(2,'sigo 'sigo) call writeln(2,'sigf 'sigf) call writeln(2,'heado 'heado) call writeln(2,'headf 'headf) call writeln(2,'disto 'disto) call writeln(2,'disth 'disth) call writeln(2,'repo 'repo) call writeln(2,'reph 'reph) call writeln(2,'qbody 'qbody) call writeln(2,'qhead 'qhead) call writeln(2,'bacc 'bacc) call writeln(2,'texc 'texc) call writeln(2,'colo 'colo) call writeln(2,'fcase 'fcase) call writeln(2,'phil 'phil) call writeln(2,'philo 'philo) call close(2) end return deletegroups: if open(6,current_dir||newsgroupsfile'.new',w) then do if open(7,current_dir||newsgroupsfile,r) then do do until groupinfo = '' groupinfo = readln(7) parse var groupinfo grp . listwork=addr dflag='' do until nextgrp='' parse var listwork . 'grouplist="' nextgrp '"' listwork if nextgrp=grp then dflag='on' end if dflag~='on'&groupinfo~='' then call writeln(6,groupinfo) end call close(7) end call close(6) if exists(current_dir||newsgroupsfile) then call delete(current_dir||newsgroupsfile) call rename(current_dir||newsgroupsfile'.new', current_dir||newsgroupsfile) end return fixhtml: procedure parse arg a a=a'-' c='' parse var a b '&' a do while a~='' c=c||b'&' parse var a b '&' a end a=c||b c='' parse var a b '<' a do while a~='' c=c||b'<' parse var a b '<' a end a=c||b c='' parse var a b '>' a do while a~='' c=c||b'>' parse var a b '>' a end a=c||b return left(a,length(a)-1) fixta: procedure parse arg a a=fixhtml(a) a=a'-' c='' parse var a b '"' a do while a~='' c=c||b'"' parse var a b '&' a end a=c||b return left(a,length(a)-1) fixphil: procedure parse arg a c='' parse var a b '*"' a do while a~='' c=c||b'*q' parse var a b '*"' a end a=c||b parse var a . 'phil="' a '"' . c='' parse var a b '*' a do while a~='' d=left(a,1) if d='N' then c=c||b||'0a'x else if d='q' then c=c||b||'"' else if d='"'|d='*'|d="'"|d='$'then c=c||b||d else do c=c||b||'*' a=d||a end parse VALUE (substr(a,2)) WITH b '*' a end return c||b